其他
有魔性的图来一发
不知不觉中我已经介绍了很多R包,有学术上的ChIPseeker、treeio、ggtree、clusterProfiler、GOSemSim、seqcombo和MSnbase等,当然免不了有吐槽还有抄袭。有学R的和更新R包,也有桌面小工具,还有画图的ggplot2、怎么配色、嵌入图片(比如pokemon), 以及emoji作图,也有好玩的贴纸和装逼利器。
今天要介绍另外一个R包,magick,是R里面玩图片的利器,今天要讲的是在静态图片上加动态图片,这样我们平时画一些学术的图,就可以加点搞笑的动态元素上去,有利于在博客和公众号上装逼。
无非是给我一张静态图当背景,再来一张动态图加在上面,为了让代码可以重用,首先打包个小函数:
add_gif <- function(bg_file, gif_file, out_file, offset, bg_size="500", gif_size="150") {
library(magick)
p <- image_read(bg_file)
g <- image_read(gif_file)
g <- image_scale(g, gif_size)
background <- image_background(image_scale(p, bg_size), "white", flatten = TRUE)
frames <- lapply(g, function(frame) {
image_composite(background, frame, offset = offset)
})
animation <- image_animate(image_join(frames))
image_write(animation, out_file)
}
然后就可以来玩了,首先用上次讲到的dotplot做为底图,再从网上找一个动图,调用函数,bingo:
bg_file <- "dotplot_ggplot.png"
gif_file <- "http://mrwgifs.com/wp-content/uploads/2014/11/HQ-Carlton-Dance-With-a-Transparent-Background-Gif-From-The-Fresh-Prince-Of-Bel-Air.gif"
add_gif(bg_file, gif_file, "dotplot_ggplot2.gif", "+160+350")
第二个实例,用的也是clusterProfiler出的图,这个是enrichMap,依然从网上找一个动图加上去:
f1 <- "https://raw.githubusercontent.com/GuangchuangYu/clusterProfiler/master/vignettes/figures/enrichMap.png"
f2 <- "https://raw.githubusercontent.com/batpigandme/arch_dossiers/master/img/cheryl_blowup_no_bg.gif"
add_gif(f1, f2, "enrichMap_animation.gif", "+350+200")
你也来试试,让我们平时做科研画图多一点小乐趣。
让我们写博客,发公众号,来点逼格。装点十三。
中国人最不缺的就是斗图素材,走你。
总有一款让你流连~
为什么我们喜欢包?因为包治百病啊!
我介绍的包,要么好用,要么好玩,历史好文,值得重温: